Efficient and reliable delivery of video data is becoming increasingly important as the Internet continues to grow in popularity. Video is very appealing because it offers a much richer user experience than static images and text. It is more interesting, for example, to watch a video clip of a winning touchdown or a Presidential speech than it is to read about the event in stark print. Unfortunately, video data can require significantly more memory, processor usage, and bandwidth than other data types commonly delivered over the Internet. As an example, one second of uncompressed video data may consume one or more Megabytes of data. Delivering such large amounts of data over error-prone networks, such as the Internet and wireless networks, presents difficult challenges in terms of efficiency, reliability, and network capacity.
After video is encoded according to a video coding format, the encoded video may be transmitted to a client that employs a decoder to decode and present the video. A decoder can decode the sequence of frames by performing operations that are substantially the inverse of the encoding operations. Prior to video transmission, it may be desirable to reduce the bit rate of the encoded video depending on various conditions, such as available network bandwidth, channel capacity, CPU utilization, and client buffer state. By reducing the bit rate in response to changes in such conditions, the encoder can facilitate higher transmission performance and/or higher quality video presentation at the client.
One approach to reducing the bit rate at the encoder is to employ a cascaded decoder-encoder. FIG. 2 illustrates the cascaded approach. As shown, a decoder 202 is placed prior to an encoder 204, whereby the decoder fully decodes video input 206 prior to the encoder 204 re-encoding the video at the desired bit rate. While the cascaded approach may achieve the desired bit rate adjustment without reduction of video quality or drift error, the complexity of the system (e.g., a full decoder) is a serious drawback.